By John A. Wagner (wagner@maricopa.edu) and Will Uther (will@cs.su.oz.au).
Logo by Robert Otani (otani@netcom.com).
What Ladmo is
Ladmo is a full fledged bot for the shareware game Bolo by Stuart Cheshire.
It only works with version 0.992.
It is for those who do not have the resources to play against other human
opponents, or just like playing with bots.
Ladmo also has a borg feature, more on that later.
Check out the Revision History section to see what changes have been made from
previous versions.
Recommended Configuration/Installation
To use Ladmo drop it into the Brains folder inside of your Bolo folder.
Make sure that the "Allow Brains" option is checked in Bolo.
Select Ladmo from the "Tank Control" Menu in Bolo.
You can also run multiple copies of Bolo on your machine, using
some copies and a copy of Bolo running for yourself.
Ladmo takes a lot of memory to run. Currently Ladmo takes almost 800k
to run properly and to load. Set the Bolo Partition size to at least 1825k.
If you experience problems try increasing the Bolo partition size.
20mHz 68030 or a 10mHz 68040 is also highly recommended for running
each copy of Ladmo (Will run on less but not as well.). So if you have
a 25mHz 68040 you should be able to run 2 Ladmo's plus yourself
on the one machine without too much penalty.
Ladmo is now in two versions. A 68k version and a PPC version.
Where the name Ladmo is from
Ladmo was a host of a childrenユs TV show in Arizona, The Wallace and
Ladmo Show, that was the longest running local T.V. show ever in the United
States, from 1954 to 1989. He died in March of 1994, hence the bot Ladmo is
dedicated to the memory of Ladmo. I grew up watching the Wallace and Ladmo
show, and I was extremely upset when it went off the air in 1989. No one could
EVER say anything bad about Ladmo. The whole State of Arizona was in morning and
the topic of all conversations all over was who got a Ladmo Bag, and who never did.
I did :-).
Skill Level of Ladmo
Ladmo easily beat Maxwell 1.4, Tonto 2.0, and all other bots based on Standard
Autopilot. Ladmo is similar in skill level to Indy 2.02. Head to head games
are very competitive with the victor usually determined by the type of map and
how well each bot starts out.
Some of the things Ladmo can do
・ Claims Neutral Bases.
・ Fixes Allied Pills.
・ Attacks Pills.
・ Refuels.
・ Attacks Bases.
・ Attacks Enemy LGM.
・ Attacks Enemy Tanks.
・ Gets Man if stuck, at least tries to!
・ Gets Trees when needed.
・ Builds Forts, not really forts but places PB around bases nicely.
・ Clears Stuff around bases when refueling.
・ Limited Mining around bases.
・ Dumps Pills in emergency.
・ Follows Allies. (If nothing better to do)
・ Picks up dead PB's.
・ Kinda Indy compatible messaging system (described below!)
・ Picks best bases to refuel from. (remembers last stores and time since last seen to
compute a guess to how much stores it should have now, also takes in consideration
of base is spiked!)
・ Remembers pills it previously attacked and/or killed.
・ Picks the best base to attack (computes base coverages by enemy pills).
・ Moves allied pills that are left in dumb locations.
・ Configuration Menu.
・ Wanders around. (Randomly picks bases to go to)
・ Auto Allies with other Ladmos (Instructions below.)
・ Three different personalities/modes.
・ Limited borg mode.
・ Various other stuff.
Ladmo recognizes and/or sends the following commands
/who - Will respond with the Ladmo startup message.
/pause - Will put Ladmo into a pause state. Ladmo keeps its memory,
but will not move forward. Ladmo still will shoot and rotate around.
/continue - Will bring Ladmo out of pause state.
/ally - Will cause Ladmo to request alliance with the sender.
Ladmo will also auto ally with other Ladmos providing that each Ladmo has the first five
letters of the players name is "Ladmo". There is still an ally bug in Bolo 0.99.2 that can cause
partial alliances at times, so there is nothing that I can do about that.
The following commands Ladmo will only recognize from/to allies:
/defense or /def - Will switch Ladmo into defensive personality.
/suicidal or /suic - Will switch Ladmo into suicidal personality.
/normal or /def - Will switch Ladmo into normal personality.
/pill number X Y Owned Strength (Example: "/pill 2 120 87 n 15")
/base number X Y Owned Shells Mines Armour (Example: "/base 4 79 102 f 90 60 70")
/pill number ?? (Example: "/pill 2 ??")
Owned will either be "e" for enemy, "f" for friendly, and "n" for neutral.
Here is what Ladmo DOES NOT do yet and problems
・ Some Combat areas need work. Attacking pills still needs a bunch of work. Repairing
pill from distances, spiking, getting out of the way of stuff, trying to shoot
through bases and pills to hit enemy tanks ect.
・ Messaging system isn't fully implemented yet. It is kinda Indy compatible
but it seems to confuse Indy at times. Also Indy confuses Ladmo at times
because Indy sends out inaccurate base messages.
・ Ladmo doesn't tell the difference between enemy pills and neutral pills, yet, they
are just hostile and treated the same. (Should send out the correct messages
though)
・ Still messes up clearing and adding dangers. I spent about a week working on this
and have cleared most stuff, but sometime it gets messed up at times and does
things he should not do. Seems to have problems when more than one PB
is in an area.
・ Other general movement problems. I am still learning the Danielユs Code and still
have a lot to learn to make Ladmo move better.
・ Another problem that Ladmo sometimes will run into is Ladmo will "see" a target
that becomes a priority at a certain range, but to get to the target Ladmo would go
out of range and thus loose its priority. So then Ladmo would go towards the previous
target bringing in range of the other target and the cycle continues.
・ Limited mining functions, just around bases while refueling.
In future versions Ladmo will mine more randomly and clear mines.
・ Ladmo's code is a complete mess right now. It is not commented, uses too many
global variables, way too much memory, and is not optimized at all.
・ Ladmo will crash when reaching the bounds of a map. The problem is in the
Decayed Brain Movement code and we have not fixed it yet. We need to track down
exactly where it breaks.
・ Borg mode is just in its infancy.
・ Ladmo has a very simple decision making scheme and does not employ any
type of long term strategy.
・ Some fatal flaws in strategy that I won't reveal.
Borg Mode
It is far from being complete, but if you have the caps lock key down you can control
Ladmo with the default Bolo command keys. If you are adventurous you can
change the keys with ResEdit if you know the proper character key codes. The next
major release version will have a configuration dialog and save the preferences
properly.
Ladmo will remember everything the tanks sees in this mode and will send out pill
messages base messages and receive all messages. It sends out too many pill messages,
but it is just a cosmetic problem.
It does work with BTA, so like other borgs you can use it to display a map of what
the tank has seen.
Ladmo does have some unique options that I have not seen from any other bots
or borgs, yet. With the special keys listed below the borg mode lets you
tap into some of Ladmo's other functions. Those functions include going
to refuel, repair pill, go get trees and Ladmo's deadly kill enemy LGM, ect.
For some of these functions you must hold down the key for it to work. For
example if you want Ladmo to Claim a neutral base for you hold down the
'C' key until Ladmo claims the base.
Here are the keys:
Accelerate: Q
Decelerate: A
Turn anti-clockwise: O
Turn clockwise: P
Lay Mine: Tab
Shoot: Space
Aim Closer: ;
Aim Farther: L
Tank View: Return
PillBox View: '
Special Keys:
Dump Pill: D
Build Road Under Tank: K
Grab Close Tree (limited range): J
Clear Closest Mine: W
Build Boat on Closest available spot: Z
Refuel: R
Claim Closest Neutral Base: C
Go Get Trees: G
Go Fix Pill: F
Kill Enemy LGM: I
You can use ResEdit to edit them to your preference, you must know the Key
Codes to make changes.
It still has a long way to go, but it is a start. You can also use it instead of
the pause menu option to pause Ladmo while still retaining its memory.
Menu Options
Currently we have left in a bunch of menu options:
Normal - On by Default
Defensive
Suicidal
Custom
----------------
Fix Pills - On
Attack Tanks - On
Attack Bases - On
Attack Pills - On
AutoSelect Attack Pill - On
Attack LGM - On
Spike Enemy - On
Mining - On
Clear around Pills - On
----------------
Messaging - On
Use BTA - Off
Pause Ladmo - Off
Most are self explanatory, with the following exceptions:
Ladmo has 3 personalities/modes plus custom settings. Currently all the
modes do is change the other menu options. In a future version these
will change the priorities around also.
AutoSelect Attack Pill - - Instead of selecting whether to use "New Attack Pill" or
not, there is now a menu option called "AutoSelect Attack Pill" which when on will automatically select the "best" pill attack method bases on CPU power. If option is
off "Regular Attack Pill" is used.
Use BTA (Bolo Team App) - Ladmo will communicate the the Bolo Team App
by Will Uther. Right now Ladmo will just use BTA to display a map to the areas he
has been. Future versions will use BTA much more extensively.
Pause Ladmo - With this on it will to stop Ladmo's forward movement.
The Bolo Team App is included for your enjoyment!
What is going to be done to Ladmo next
・ Well, we are going to try to fix the bugs/problems/flaws above.
・ Write a NEW decision making/strategy algorithm.
・ Saving options (separate file? Bolo Prefs? Internally?).
・ Much more configuration, including enhancing personalities past just menu options.
・ Generally improve other things, using pills for defense, getting out
of the way in stupid instances etc.
・ Much expanded messaging.
・ Much expanded borg mode.
・ Add some different features we have thought up ;-).
Revision History
0.60p - September 11, 1994
- First native PPC version.
- Fixed bug in borg mode that caused Ladmo to getkeys even when not frontmost
application.
0.60 - September 5, 1994
- Fixed and re-added routine that periodically checks pillbox views
and updates info. It updates the view for one pillbox every 2
seconds. So if Ladmo has 8 pills every 16 seconds Ladmo would have
cycled through all of the pills.
- Ladmo now black lists bases it can't get to and makes an attempt to
try and clear the obstacle(s) later. Still some problems but it is a start.
- Improved Attack Tank.
- Improved fixing pills at a distance.
- Will now attempt to clear walls around it's pills. It is on by default
but has problems on maps with bunches of walls around bases, Ladmo wastes
too much ammo. So if you are using Ladmo on a map like that you should turn
that option off.
- Fixed a refueling bug that caused Ladmo to sit on a base without armour
trying to refuel.
- Fixed some bugs in the dangers, so that Ladmo will now travel better around
pills if there are obstacles between him and the pill.
- New feature that automatically adjusts when CPU is low, this will improve
performance on slow machines. Currently there are two modes: "Normal CPU"
and "Low CPU."
- Added AutoSelect Attack Pill.
- A new Attack Pill Method, called "Advanced Attack Pill", which makes Ladmo
the first bot to use a wall trick to take pills at times. Still needs some
work, but is definitely an improvement. This method is used when "AutoSelect
Attack Pill" is on, and the CPU mode is "Normal CPU."
- Regular Attack Pill is now an improved version of the "New Attack Pill" in
earlier versions which uses just a regular shoot and run method. This is used
when "AutoSelect Attack Pill" is off, or when the CPU mode is "Low CPU."
- Some borg fixes and changes.
- Some strategy changes.
- Some improvements to the information Ladmo sends the Bolo Team App.
- Keys for Borg Mode are now kept in a resource inside of Ladmo. You can
use ResEdit to edit them to your preference.
- Various other improvements and additions.
0.51 - August 1, 1994
- Removed the code that has Ladmo flip through pill boxes views because
it was causing some crashes when an allied pill is killed and Ladmo
switched to that view. The checks that I had in were insufficient. This will
be fixed in a future version.
0.50 - First general release, July 31, 1994.
Final Notes
Ladmo includes code from Decayed Brain 0.4 by Daniel Kallander, and
BBMPL 0.8 by John Dunning. Ladmo was also written with help from Indy 1.0
code by John Lawrie and Gersham Meharg and Standard Autopilot code by
Stuart Cheshire. Ladmo is NOT based on Standard Autopilot like most
other full fledged AutoPilots.
Special thanks go to all the beta testers.
Ladmo is written in Symantec THINK C version 7.0.X and MetroWorks Code Warrior .
So portions are copyright Symantec and MetroWorks respectively.
I am using THINK C, and Will is using CW for those who wanted
to know.
This is an early version of Ladmo, hence the 0.60 version number listed.
Use Ladmo at your own risk, if you use Ladmo enough it will eventually
crash your system.
Ladmo is Freeware but is NOT in the public domain. Ladmo is copyright 1994
by John A. Wagner and Will Uther. You can freely copy and distribute Ladmo
with the following conditions: You may not charge for Ladmo. For profit
companies MAY NOT distribute Ladmo without my signed approval. Non profit
organizations MAY distribute Ladmo. You must include all of the documentation
of Ladmo. You must not distribute modified copies of Ladmo.
If you encounter a bug, or a crash, or any other problem, or just would like
to make a comment, suggestion, or want to send us some code to look at,
then please do.
If you use Ladmo please let us know. Send us some E-Mail or a post card if
you like. If not many people end up using Ladmo or don't at least comment on
Ladmo I will most likely move on to other things, like improving my own Bolo
skills! I originally started writing Ladmo to improve my C programming skills,
not to create the ultimate bot. I have done the first, I think, so I am happy